Minigen

A few days ago, I tried to update the landing page for Hyperchalk. Back then, when I made the site, I decided to use vuepress since it promised that I could come to a neat documentation page pretty quickly and it did actually hold up to that. However, with vuepress, as well as with other static site generation tools like Hugo, I've had the same problems now several times:

I maintain some sites that usually just sit there and I rarely update them. When I do so, I just want to make my changes, run a command, maybe `git commit; git push` and call it a day. But static site generators, especially the ones that are written in JavaScript don't work this way. These tools often rely on semi-complex mechanisms for templating and generating content from Markdown, often deploying their own fancy tags via MardownX or other custom markdown extensions. Now here's the problem: these mechanisms regularly break. They especially like to break exactly between me doing updates to my sites. So I see myself fixing some package dependencies or my template or what gives like every time I just want to push a minor change of a site.

I kind of grew sick and tired with this. Which is why I did what every computer scientist would do at this point: I made my own tool and I named it Minigen. It's basically just the Tera template engine for Rust tied into some generation logic. It also does feed syndication if you put a date in the file name. It does not support markdown. You can build your site using everything that Tera offers though.

As a bonus, here are some posts that inspired me along the way: